<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!-- import CSS -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.15.9/theme-chalk/index.css">
    <style>
        .el-header img{
            vertical-align: middle;/*中间对齐*/
        }
        .el-header a{
            color: #666;
            text-decoration: none;
        }
        .el-table .el-table__cell{
            padding: 0;/*去掉自带的内边距*/
        }
        .el-table .cell{
            /*设置一行显示, 超出部分显示省略号*/
            white-space: nowrap;
        }
    </style>
</head>
<body>
<div id="app">
    <el-container>
        <el-header height="150px">
            <div style="width: 1200px;margin: 0 auto">
                <img src="imgs/logo.png" width="300" alt="">
                <a href="/">首页</a><el-divider direction="vertical"></el-divider>
                <a href="">热点资讯</a><el-divider direction="vertical"></el-divider>
                <a href="">商家入驻</a><el-divider direction="vertical"></el-divider>
                <a href="">社会招聘</a><el-divider direction="vertical"></el-divider>
                <a href="">校园招聘</a><el-divider direction="vertical"></el-divider>
                <a href="">帮助</a>
            </div>
            <div style="background-color: #0aa1ed">
                <!--default-active设置激活的位置-->
                <el-menu :default-active="activeIndex" style="width: 1200px;margin: 0 auto" mode="horizontal"
                         background-color="#0aa1ed" text-color="#fff"
                         active-text-color="#0f0" @select="handleSelect">
                    <el-menu-item v-for="c in categoryArr"
                                  :index="c.id">{{c.name}}</el-menu-item>

                    <div style="float: right;position:relative;top:10px">
                        <el-input type="text" v-model="wd" placeholder="请输入搜索的内容">
                            <!--slot="append"设置搜索按钮嵌入到文本框里面-->
                            <el-button slot="append" @click="search()" icon="el-icon-search"></el-button>
                        </el-input>
                    </div>
                </el-menu>
            </div>
        </el-header>
        <el-main style="width: 1200px;margin: 0 auto">

            <!--商品列表开始-->
            <el-row gutter="20">
                <el-col style="margin: 10px 0" span="6" v-for="p in productArr">
                    <el-card>
                        <a :href="'/detail.html?id='+p.id">
                            <img :src="p.url" width="100%">
                        </a>

                        <p style="font-size: 14px">
                            <a :href="'/detail.html?id='+p.id">
                                {{p.title}}
                            </a>
                        </p>
                        <p style="font-size: 12px">￥{{p.price}} <s>{{p.oldPrice}}</s>
                            <span style="float: right">销量:{{p.saleCount}}件</span>
                        </p>
                    </el-card>
                </el-col>
            </el-row>
            <!--商品列表结束-->
        </el-main>
        <el-footer>
            <div style="background-image: url('imgs/wave.png');height: 95px">
            </div>
            <div style="text-align: center;background-color: #3f3f3f;
            color: #b1b1b1;padding: 30px 0">
                <p>Copyright © 北京达内金桥科技有限公司版权所有 京ICP备12003709号-3 京公网安备 11010802029572号</p>
                <p>涵盖20余门课程体系，致力于打造权威的IT职业教育学习平台</p>
                <p>达内在线WWW.TMOOC.CN 专注于IT职业技能培训</p>
            </div>
        </el-footer>
    </el-container>
</div>
</body>
<!--引入axios和vue框架-->
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.min.js"></script>
<!-- import Vue before Element -->
<script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
<!-- import JavaScript -->
<script src="https://cdn.staticfile.org/element-ui/2.15.9/index.min.js"></script>
<script>
    let v = new Vue({
        el: '#app',
        data: function () {
            return {
                categoryArr:[],
                productArr:[],
                activeIndex:"",
                wd:""
            }
        },
        methods:{
            search(){
                if (v.wd.trim()==""){
                    v.$message.error("请输入搜索的内容!");
                    return;
                }
                //发出搜索请求
                axios.get("/product/selectByWd?wd="+v.wd).then(function (response) {
                    v.productArr = response.data;
                })
            },
            handleSelect(key,keyPath){
                console.log(key);
                //key是导航菜单中的index,而index的值设置的是分类的id
                //发请求获取点击分类相关的商品
                axios.get("/product/selectByCid?id="+key).then(function (response) {
                    v.productArr = response.data;
                })
            }
        },
        created:function () {
            //发请求获取所有分类信息
            axios.get("/category/select").then(function (response) {
                v.categoryArr = response.data;
            })
            //判断地址栏中是否包含wd参数
            //indexOf()获取a字符串在b字符串中出现的位置 -1代表不包含
            if (location.search.indexOf("wd")!=-1){//包含wd 搜索商品
                //发出搜索的异步请求把搜索的wd关键字传递过去
                axios.get("/product/selectByWd"+location.search)
                            .then(function (response) {
                    v.productArr = response.data;
                })

            }else{//不包含wd  而是包含id   显示分类下的商品
                //得到分类的id      ?id=6
                let id = location.search.split("=")[1];
                //Cannot access 'v' before initialization
                //不能访问v在初始化之前
                //   v.activeIndex = id;
                //因为created方法是Vue对象初始化过程中调用的方法,在此方法的执行
                //过程中 Vue对象还没有初始化完成, 不能通过v.的方式访问,要想访问Vue
                //对象可以通过this.的方式访问. 其它两个地方可以使用因为执行v.时候是
                //请求数据回来之后,这个时间点 created方法已经执行完成 Vue对象也初始化完成.
                this.activeIndex = id;
                //发请求获取某个分类下所有商品数据   ?id=xxx
                axios.get("/product/selectByCid"+location.search).then(function (response) {
                    v.productArr = response.data;
                })
            }

        }
    })
</script>
</html>